// pages/login/login.js
const api = require('../../utils/api');

Page({
    data: {
        redirectUrl: '/pages/home/home',
        loading: false // 登录按钮加载状态
    },
    
    onLoad(options) {
        // 获取跳转参数中的redirectUrl
        if (options.redirect) {
          this.setData({
            redirectUrl: decodeURIComponent(options.redirect)
          });
        }
      },

      // 点击登录按钮
  handleLogin() {
    if (this.data.loading) return; // 防止重复点击

    this.setData({ loading: true });

    // 1. 获取微信登录凭证code
        wx.login({
        success: (res) => {
            if (res.code) {
            // 2. 用code请求后端接口
            this.requestLogin(res.code);
            } else {
            this.setData({ loading: false });
            wx.showToast({
                title: '登录失败：' + res.errMsg,
                icon: 'none'
            });
            }
        },
        fail: (err) => {
            this.setData({ loading: false });
            wx.showToast({
            title: '获取code失败',
            icon: 'none'
            });
            console.error('wx.login失败：', err);
        }
        });
    },


    // 调用后端登录接口
  requestLogin(code) {
    console.log('code:', code);
    api.my.login( code )
      .then((response) => {
        this.setData({ loading: false });
        console.log('登录接口完整响应：', response);
        // 3. 处理后端响应数据
        const { id, openId, token } = response;
        
        // 验证必要参数
        if (!id || !token) {
          wx.showToast({
            title: '登录信息不完整',
            icon: 'none'
          });
          return;
        }
        
        // 4. 保存登录状态到本地存储
        wx.setStorageSync('userId', id);       // 用户ID
        wx.setStorageSync('openId', openId);   // 可选：保存openId
        wx.setStorageSync('token', token);     // JWT令牌
        
        // 5. 跳转页面（优先跳转到redirectUrl，否则跳首页）
        const redirectUrl = this.data.redirectUrl || '/pages/home/home';
        console.log('准备跳转到:', redirectUrl);

        // tabBar页面列表
        const tabBarPages = [
          '/pages/home/home',
          '/pages/conversation/conversation',
          '/pages/myself/myself'
        ];

        // 判断是否为tabBar页面
        const isTabBarPage = tabBarPages.some(page => redirectUrl.includes(page));

        if (isTabBarPage) {
          // tabBar页面使用switchTab
          wx.switchTab({
            url: redirectUrl,
            fail: (err) => {
              console.error('switchTab失败:', err);
              wx.showToast({
                title: '页面跳转失败',
                icon: 'none'
              });
            }
          });
        } else {
          // 普通页面使用navigateTo
          wx.navigateTo({
            url: redirectUrl,
            fail: (err) => {
              console.error('navigateTo失败:', err);
              wx.showToast({
                title: '页面跳转失败',
                icon: 'none'
              });
            }
          });
        }
      })
      .catch((err) => {
        this.setData({ loading: false });
        wx.showToast({
          title: err.msg || '登录失败，请重试',
          icon: 'none'
        });
        console.error('登录接口失败：', err);
      });
  }

    

  });